﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;

namespace InnvoiceActual.Logica.GestorObject
{
    public class Alicuota //: INotifyPropertyChanged, IDataErrorInfo
    {
        //#region Event

        //public event PropertyChangedEventHandler PropertyChanged;

        //#endregion

        #region Properties

        private int _codigo_alicuota;
        public int Codigo_Alicuota
        {
            get
            {
                return this._codigo_alicuota;
            }
            set
            {
                if (this._codigo_alicuota == value)
                {
                    return;
                }
                this._codigo_alicuota = value;
            }
        }

        private string _descripcion;
        public string Descripcion
        {
            get
            {
                return this._descripcion;
            }
            set
            {
                if (this._descripcion == value)
                {
                    return;
                }
                this._descripcion = value;
                //if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs("Descripcion"));
            }
        }

        private decimal _tasa;
        public decimal Tasa
        {
            get
            {
                return _tasa;
            }
            set
            {
                if (_tasa == value)
                    return;
                _tasa = value;
            }
        }

        private byte _activo;
        public byte Activo
        {
            get
            {
                return this._activo;
            }
            set
            {
                if (this._activo == value)
                {
                    return;
                }
                this._activo = value;
            }
        }

        //public string Error
        //{
        //    get
        //    {
        //        return null;
        //    }
        //}

        //public string this[string propertyName]
        //{
        //    get
        //    {
        //        return IsValid(propertyName);
        //    }
        //}
        
        #endregion Properties

        #region Contructor

        public Alicuota()
        {
            _activo = 1;
            _descripcion = "21 %";
            _tasa = 21m;
        }

        #endregion

        //#region Methods

        //private string IsValid(string propertyName)
        //{
        //    switch (propertyName)
        //    {
        //        case "Descripcion":
        //            if (string.IsNullOrWhiteSpace(Descripcion))
        //                return "El campo Descripcion es requerido";
        //            else
        //            {
        //                Regex regEx;
        //                regEx = new Regex(@"[a-zA-ZñÑ\s]{2,50}");
        //                if (!regEx.IsMatch(Descripcion))
        //                    return "El campo Descripcion no " +
        //                        " tiene un formato correcto";
        //            }
        //            break;
        //    }
        //    return null;
        //}

        //public bool IsValid()
        //{
        //    return string.IsNullOrEmpty(IsValid("Descripcion"));
        //}

        //#endregion
    }
}
